//package com.ruoyi.web.controller.websocket.websocket;
//
//import com.alibaba.fastjson.JSON;
//import com.ruoyi.web.controller.websocket.WebSocket;
//import org.springframework.stereotype.Component;
//
//import javax.servlet.http.HttpSession;
//import javax.websocket.*;
//import javax.websocket.server.PathParam;
//import javax.websocket.server.ServerEndpoint;
//import java.io.IOException;
//import java.util.Map;
//import java.util.Set;
//import java.util.concurrent.ConcurrentHashMap;
//
////@ServerEndpoint(value = "/chat",configurator = GetHttpSessionConfig.class)
////@Component
//public class ChatEndpoint {
//
//
//
//    private HttpSession httpSession;
//    private static final Map<String,Session> onlineUsers = new ConcurrentHashMap<>();
//
//    /**
//     * 建立websocket建立连接后被调用
//     * @param session
//     */
//    @OnOpen
//    public void onOpen(Session session,EndpointConfig config){
//        //1.将Session 进行被保存
//        this.httpSession = (HttpSession) config.getUserProperties().get(HttpSession.class.getName());
//        String userName = (String) httpSession.getAttribute("userName");
//        onlineUsers.put(userName,session);
//        //2.广播消息，将消息广播给所有的公路的用户
//        broadcastAllUsers("好友已上线");
//    }
//
//    public void broadcastAllUsers(String message){
//        try {
//        //便利map集合
//        Set<Map.Entry<String, Session>> entries = onlineUsers.entrySet();
//        for (Map.Entry<String, Session> entry : entries) {
//            //获取所有的用户对应的session对象
//            Session session = entry.getValue();
//            //发送消息
//            session.getBasicRemote().sendText(message);
//        }
//        }catch (Exception e){
//            //记录日志
//        }
//
//
//
//
//
//    }
//    @OnMessage
//    public void onMessage(String message){
//        //将消息发送给用户
//        Message msg = JSON.parseObject(message, Message.class);
//        //获取 消息接收方的用户名
//        String toUserName = msg.getToUserName();
//        String mess = msg.getMessage();
//        //获取接收方的用户的session对像
//
//
//
//
//
//    }
//
//    /**
//     * 断开时自动调用
//     * @param session
//     */
//    @OnClose
//    public void onClose(Session session){
//        //1.从onlineUsers中剔除当前用户的Session队形
//        String userName = (String) httpSession.getAttribute("userName");
//        onlineUsers.remove(userName);
//        //消息通知其他用户当前用户已下线
//        broadcastAllUsers("好友已下线");
//    }
//}
